home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
serien
/
purity
/
nr.37
/
useful
/
prtdev.p
< prev
next >
Wrap
Text File
|
1994-09-17
|
4KB
|
175 lines
{ Programm: Printer.device-Demo V0.5 25.07.94
~~~~~~~~~
Sprache: KP2.12 / OS2 bzw. MP3
~~~~~~~~
Sinn: - puffern der zu Druckstart eingestellten Prefs (Prt) -->
~~~~~ - Drucken mit verschiedenen Modies -->
- Rücksetzen der Prefs
Autor: PackMAN
~~~~~~ c/o Falk Zühlsdorff
Lindenberg 66
D-98693 Ilmenau / Thüringen
Copyright: © by PackMAN (keine Freeware etc.)
~~~~~~~~~~
wird nur an vom Autor bestimmte Leute abgegeben
Thanx: Jens Gelhar ( byte:=DoIO(PTR(Pio)) nicht byte:=DoIO(Pio)
~~~~~~ Jens Tröger ( dopW, für moralische Unterstützung ) }
Program Prtdevs;
USES EXECIO;
{$incl "devices/printer.h","devices/prtbase.h"}
TYPE PrinterIO=Record { C: "union" --> Pascal: Record mit Variantenteil.}
Case integer Of { Thanx JG }
0: ( ios : IOStdReq );
1: ( iodrp : IODRPReq );
2: ( iopc : IOPrtCmdReq );
End;
StrType = string[128];
VAR PrintMP : ^MsgPort;
PIO : ^PrinterIO;
doit : byte;
pitch : Word;
quality : Word;
spacing : Word;
lMargin : Word;
rMargin : Word;
PD : ^PrinterData;
prefs,
oldprefs : ^Preferences;
Dev : byte;
PROCEDURE PrtCom(PrtCommand:word;P0,P1,P2,P3:byte);
BEGIN
PIO^.iopc.io_Command :=PRD_PRTCOMMAND;
PIO^.iopc.io_PrtCommand:=PrtCommand;
PIO^.iopc.io_Parm0 :=P0;
PIO^.iopc.io_Parm1 :=P1;
PIO^.iopc.io_Parm2 :=P2;
PIO^.iopc.io_Parm3 :=P3;
doit:=DOIO(PTR(PIO));
END;
PROCEDURE CMDLn(msg:StrType);
BEGIN
PIO^.ios.io_Command:=CMD_WRITE;
PIO^.ios.io_Data :=^msg;
PIO^.ios.io_length :=-1;
doit:=DoIO(PTR(PIO));
PrtCom(aNEL,0,0,0,0);
END;
PROCEDURE GetPRTPrefs;
BEGIN
PD:=NIL;
Prefs:=NIL;
PD:=^PIO^.ios.io_Device;
Prefs:=^PD^.pd_Preferences;
pitch :=Prefs^.PrintPitch;
quality:=Prefs^.PrintQuality;
spacing:=Prefs^.PrintSpacing;
lMargin:=Prefs^.PrintLeftMargin;
rMargin:=Prefs^.PrintRightMargin;
END;
PROCEDURE SetPRTPrefs;
BEGIN
Prefs^.PrintPitch :=pitch ;
Prefs^.PrintQuality :=quality;
Prefs^.PrintSpacing :=spacing;
Prefs^.PrintLeftMargin :=lMargin;
Prefs^.PrintRightMargin:=rMargin;
PrtCom(aRIN,0,0,0,0);
END;
BEGIN
PrintMP:=CreatePort(NIL,0);
PIO:=CreateExtIO(PrintMP,SizeOf(PrinterIO));
Dev:=OpenDevice('printer.device',0,PTR(PIO),0);
IF Dev<>0
THEN BEGIN writeln('Konnte Printer.device nicht öffnen');exit;END;
GetPRTPrefs;
IF (PD=NIL) OR (Prefs=NIL)
THEN
BEGIN CloseDevice(PTR(PIO)); exit; END;
CMDLn('Original-Prt.Prefs');
{ PrtCom(aRIS ,0,0,0,0); {hardreset}}
PrtCom(aRIN ,0,0,0,0); {init}
PrtCom(aDEN2 ,0,0,0,0); {NLQ}
PrtCom(aSHORP0 ,0,0,0,0); {normal pitch / Pica}
PrtCom(aVERP0 ,0,0,0,0); {1/6"}
CMDLn('Printer.device-Demo V0.5 KP 2.12 / OS2');
CMDLn('');
CMDLn('NLQ / Rand: Original / Pica / 1/6"');
CMDLn('');
PrtCom(aDEN1 ,0,0,0,0); {NLQ off}
PrtCom(aSLRM ,1,90,0,0); {Rand}
CMDLn('---------> C&P by PackMAN 7/94 All Right Reserved <---------');
CMDLn('Draft / Rand: 1(l)'+' 90 (r)');
PrtCom(aSHORP2,0,0,0,0); {Elite}
PrtCom(aVERP1 ,0,0,0,0); {1/8"}
PrtCom(aSLRM, 20,70,0,0); {Rand}
CMDLn('Rand: 20 (l) 70(r) / Elite / 1/8"');
CMDLn('Der Sieg über das Printer.device | Thanx J.Gelhar');
PrtCom(aSHORP4,0,0,0,0); {Fine}
PrtCom(aSGR4 ,0,0,0,0); {underline}
CMDLn('Fine / underline');
PrtCom(aSUS2 ,0,0,0,0); {Fine / superscript }
CMDLn('Superscript');
PrtCom(aSUS4 ,0,0,0,0); {Fine / subscript }
PrtCom(aSLRM,3,130,0,0); {Rand}
CMDLn('Subscript / Rand: 3 (l) 130 (r)');
PrtCom(aSHORP6 ,0,0,0,0); {Breit }
PrtCom(aSGR24 ,0,0,0,0); {underline off}
CMDLn('Breit / underline off');
PrtCom(aSUS3, 0,0,0,0); {subscript off}
CMDLn('subscript off');
PrtCom(aSHORP3,0,0,0,0); {Fine off}
PrtCom(aSGR4 ,0,0,0,0); {underline}
CMDLn('Fine off / underline');
SetPRTPrefs;
CMDLn('Alte Prt.Prefs');
CloseDevice(PTR(PIO));
DeleteExtIO(PIO);
DeletePort(PrintMP);
END.